﻿#define  _CRT_SECURE_NO_WARNINGS 


#include <stdio.h>
//int main0()
//{
//	int n = 9;
//	//V   =  (−1) ^ S * M ∗ 2^E
//	//9  的二进制表示为： 00000000 00000000 00000000 00001001
//	//转为浮点型：0 表示s = 0，E = -126；M = 1001
//
//	float* pFloat = (float*)&n;
//	printf("n的值为：%d\n", n);
//	printf("*pFloat的值为：%f\n", *pFloat);
//	*pFloat = 9.0;
//	
//	//9.0 转为二进制1001 .0 = 1.001*2^3 ——> S = 0，E = 3，M = 1.001
//	//0 1000 0010 00100000000000000000000
//	//1091567616
//	printf("num的值为：%d\n", n);
//	printf("*pFloat的值为：%f\n", *pFloat);
//	return 0;
//}
//
//
//struct people
//{
//	int age;
//	char name[20];
//	double height;
//	float weight;
//
//};
//int main1()
//{
//	struct people p1 = { 23 , "张三" , 170 , 65 }; //局部变量
//	struct people p2 = { .name = "李四", .age = 16 ,.weight = 60 , .height = 180 };
//	return 0;
//}
//
//
////匿名结构体类型
////匿名结构体类型省去了标签名，并且匿名结构体类型只能用一次
//struct 
//{
//	int age;
//	char name[20];
//	double height;
//	float weight;
//
//}s = { 18,"王五",176,63 };
//
//struct
//{
//	int age;
//	char name[20];
//	double height;
//	float weight;
//
//}*ps;
//
//typedef struct
//{
//	int age;
//	char name[20];
//	double height;
//	float weight;
//
//}stu;
//
//int main2()
//{
//	//struct s; //不能在这里直接创建变量，得在上面结构体创建后面
//	//printf("%d %s %lf %f", s.age, s.name, s.height, s.weight);
//
//	ps = &s; //匿名的，编译器不认识
//	//编译器会把上⾯的两个声明当成完全不同的两个类型，所以是⾮法的。
//	//匿名的结构体类型，如果没有对结构体类型重命名的话，基本上只能使⽤⼀次。
//	return 0;
//}


//结构体自引用不能包括一个自己的结构体变量
//但是可以包括一个自己的结构体指针
//typedef struct node
//{
//	int data; //数据
//	struct node* next; //指针
//}node;
//int main3()
//{
//	struct node p2;
//	node p1;
//	return 0;
//}


struct
{
	int age;
	char name[20];
	double height;
	float weight;

}s = { 18,"王五",176,63 };
int main()
{
	printf("%d %s %lf %f", s.age, s.name, s.height, s.weight);
	return 0;
}